/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.relatorios.sintesesupervisao.vo.CeRotina001SinteseSupervisaoVo;
import projovem.rotinas.CE.R001.CeRotina001;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoCeRotina001 implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private CeRotina001SinteseSupervisaoVo contagem = new CeRotina001SinteseSupervisaoVo();

    public CeRotina001SinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, String observacaoEscolhida, String municipioEscolhida, EntityManagerFactory emf) {

        List<CeRotina001> listaCeRotina001 = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndCeRotina001(coordenacaoEscolhida, entradaEscolhida, observacaoEscolhida, municipioEscolhida, emf);
        contagem.setListaCeRotina001(listaCeRotina001);


        for (CeRotina001 rotina : listaCeRotina001) {

            Integer totalDeAlunos = 0;
            Integer totalDeSalasComAlunos = 0;


            if (rotina.getQ20() != null && !rotina.getQ20().isEmpty() && Integer.parseInt(rotina.getQ20()) > 0) {
                totalDeSalasComAlunos++;
                totalDeAlunos += Integer.parseInt(rotina.getQ20());
            }
            if (rotina.getQ28() != null && !rotina.getQ28().isEmpty() && Integer.parseInt(rotina.getQ28()) > 0) {
                totalDeSalasComAlunos++;
                totalDeAlunos += Integer.parseInt(rotina.getQ28());
            }
            if (rotina.getQ36() != null && !rotina.getQ36().isEmpty() && Integer.parseInt(rotina.getQ36()) > 0) {
                totalDeSalasComAlunos++;
                totalDeAlunos += Integer.parseInt(rotina.getQ36());
            }
            if (rotina.getQ44() != null && !rotina.getQ44().isEmpty() && Integer.parseInt(rotina.getQ44()) > 0) {
                totalDeSalasComAlunos++;
                totalDeAlunos += Integer.parseInt(rotina.getQ44());
            }
            if (rotina.getQ52() != null && !rotina.getQ52().isEmpty() && Integer.parseInt(rotina.getQ52()) > 0) {
                totalDeSalasComAlunos++;
                totalDeAlunos += Integer.parseInt(rotina.getQ52());
            }

            if (rotina.getQ2() != null && rotina.getQ2().equals("sim")) {
                contagem.setQ2sim(contagem.getQ2sim() + 1);
            }
            if (rotina.getQ2() != null && rotina.getQ2().equals("nao")) {
                contagem.setQ2nao(contagem.getQ2nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            Integer horaInicial = 0;
            if (rotina.getQ3a() != null && !rotina.getQ3a().isEmpty()) {
                horaInicial = Integer.parseInt(rotina.getQ3a().substring(0, 2));
            }
            Integer horaFinal = 0;
            if (rotina.getQ3b() != null && !rotina.getQ3b().isEmpty()) {
                horaFinal = Integer.parseInt(rotina.getQ3b().substring(0, 2));
            }
            if (horaFinal - horaInicial > 4) {
                contagem.setQ3maisDe4(contagem.getQ3maisDe4() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (horaFinal - horaInicial < 4) {
                contagem.setQ3menosDe4(contagem.getQ3menosDe4() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            Integer totalBebedouros = 1;
            if (rotina.getQ4() != null && rotina.getQ4().equals("1")) {
                totalBebedouros = 1;
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("2")) {
                totalBebedouros = 2;
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("3")) {
                totalBebedouros = 3;
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("4")) {
                totalBebedouros = 4;
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("5ouMais")) {
                totalBebedouros = 5;
            }
            Integer alunosPorBebedouro = totalDeAlunos / totalBebedouros;
            if ((alunosPorBebedouro > 50) || (rotina.getQ4() != null && rotina.getQ4().equals("0"))) {
                contagem.setQ4maisDe50(contagem.getQ4maisDe50() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ5() != null && rotina.getQ5().equals("sim")) {
                contagem.setQ5sim(contagem.getQ5sim() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ6() != null && rotina.getQ6().equals("nao")) {
                contagem.setQ6nao(contagem.getQ6nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ7() != null && rotina.getQ7().equals("simComInternet")) {
                contagem.setQ7com(contagem.getQ7com() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (rotina.getQ7() != null && rotina.getQ7().equals("simSemInternet")) {
                contagem.setQ7sem(contagem.getQ7sem() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ9() != null && rotina.getQ9().equals("naoHaJovensComDificuldades")) {
                contagem.setQ9naoeha(contagem.getQ9naoeha() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ10() != null && rotina.getQ10().equals("nao")) {
                contagem.setQ10nao(contagem.getQ10nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ11() != null && rotina.getQ11().equals("nao")) {
                contagem.setQ11nao(contagem.getQ11nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ12() != null && rotina.getQ12().equals("sim")) {
                contagem.setQ12sim(contagem.getQ12sim() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ14() != null && rotina.getQ14().equals("sim")) {
                contagem.setQ14sim(contagem.getQ14sim() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            Integer totalBanheiros = 1;
            if (rotina.getQ15() != null && rotina.getQ15().equals("1")) {
                totalBanheiros = 1;
            }
            if (rotina.getQ15() != null && rotina.getQ15().equals("2")) {
                totalBanheiros = 2;
            }
            if (rotina.getQ15() != null && rotina.getQ15().equals("3")) {
                totalBanheiros = 3;
            }
            if (rotina.getQ15() != null && rotina.getQ15().equals("4")) {
                totalBanheiros = 4;
            }
            if (rotina.getQ15() != null && rotina.getQ15().equals("5ouMais")) {
                totalBanheiros = 5;
            }
            Integer alunosPorBanheiro = totalDeAlunos / totalBanheiros;
            if ((alunosPorBanheiro > 50) || (rotina.getQ15() != null && rotina.getQ15().equals("0"))) {
                contagem.setQ15maisDe50(contagem.getQ15maisDe50() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ16() != null && rotina.getQ16().equals("nao")) {
                contagem.setQ16nao(contagem.getQ16nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (totalDeAlunos < 10){
                contagem.setQ20menos10(contagem.getQ20menos10() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }else if(totalDeAlunos < 25){
                contagem.setQ20menos25(contagem.getQ20menos25() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            Integer semCarteira = 0;
            if (rotina.getQ21() != null && !rotina.getQ21().isEmpty() && Integer.parseInt(rotina.getQ21()) > 0) {
                semCarteira++;
                contagem.setTotalAlunosSemCarteira(contagem.getTotalAlunosSemCarteira() + Integer.parseInt(rotina.getQ21()));
            }
            if (rotina.getQ29() != null && !rotina.getQ29().isEmpty() && Integer.parseInt(rotina.getQ29()) > 0) {
                semCarteira++;
                contagem.setTotalAlunosSemCarteira(contagem.getTotalAlunosSemCarteira() + Integer.parseInt(rotina.getQ29()));
            }
            if (rotina.getQ37() != null && !rotina.getQ37().isEmpty() && Integer.parseInt(rotina.getQ37()) > 0) {
                semCarteira++;
                contagem.setTotalAlunosSemCarteira(contagem.getTotalAlunosSemCarteira() + Integer.parseInt(rotina.getQ37()));
            }
            if (rotina.getQ45() != null && !rotina.getQ45().isEmpty() && Integer.parseInt(rotina.getQ45()) > 0) {
                semCarteira++;
                contagem.setTotalAlunosSemCarteira(contagem.getTotalAlunosSemCarteira() + Integer.parseInt(rotina.getQ45()));
            }
            if (rotina.getQ53() != null && !rotina.getQ53().isEmpty() && Integer.parseInt(rotina.getQ53()) > 0) {
                semCarteira++;
                contagem.setTotalAlunosSemCarteira(contagem.getTotalAlunosSemCarteira() + Integer.parseInt(rotina.getQ53()));
            }
            if(semCarteira > 0){
                contagem.setTotalLocaisSemCarteira(contagem.getTotalLocaisSemCarteira() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ22() != null && rotina.getQ22().equals("nao")) ||
                    (rotina.getQ30() != null && rotina.getQ30().equals("nao")) ||
                    (rotina.getQ38() != null && rotina.getQ38().equals("nao")) ||
                    (rotina.getQ46() != null && rotina.getQ46().equals("nao")) ||
                    (rotina.getQ54() != null && rotina.getQ54().equals("nao"))) {
                contagem.setTotalAlunosCarteirasInadequadas(contagem.getTotalAlunosCarteirasInadequadas() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ23() != null && rotina.getQ23().equals("nao")) ||
                    (rotina.getQ31() != null && rotina.getQ31().equals("nao")) ||
                    (rotina.getQ39() != null && rotina.getQ39().equals("nao")) ||
                    (rotina.getQ47() != null && rotina.getQ47().equals("nao")) ||
                    (rotina.getQ55() != null && rotina.getQ55().equals("nao"))) {
                contagem.setTotalLocaisSemCadeiraEducador(contagem.getTotalLocaisSemCadeiraEducador() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ24() != null && rotina.getQ24().equals("nao")) ||
                    (rotina.getQ32() != null && rotina.getQ32().equals("nao")) ||
                    (rotina.getQ40() != null && rotina.getQ40().equals("nao")) ||
                    (rotina.getQ48() != null && rotina.getQ48().equals("nao")) ||
                    (rotina.getQ56() != null && rotina.getQ56().equals("nao"))) {
                contagem.setTotalLocaisSemMesaEducador(contagem.getTotalLocaisSemMesaEducador() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ25() != null && rotina.getQ25().equals("simEmCondicoesPrecarias")) ||
                    (rotina.getQ33() != null && rotina.getQ33().equals("simEmCondicoesPrecarias")) ||
                    (rotina.getQ41() != null && rotina.getQ41().equals("simEmCondicoesPrecarias")) ||
                    (rotina.getQ49() != null && rotina.getQ49().equals("simEmCondicoesPrecarias")) ||
                    (rotina.getQ57() != null && rotina.getQ57().equals("simEmCondicoesPrecarias"))) {
                contagem.setTotalLocaisComQuadro(contagem.getTotalLocaisComQuadro() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ25() != null && rotina.getQ25().equals("nao")) ||
                    (rotina.getQ33() != null && rotina.getQ33().equals("nao")) ||
                    (rotina.getQ41() != null && rotina.getQ41().equals("nao")) ||
                    (rotina.getQ49() != null && rotina.getQ49().equals("nao")) ||
                    (rotina.getQ57() != null && rotina.getQ57().equals("nao"))) {
                contagem.setTotalLocaisSemQuadro(contagem.getTotalLocaisSemQuadro() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if ((rotina.getQ27() != null && rotina.getQ27().equals("nao")) ||
                    (rotina.getQ35() != null && rotina.getQ35().equals("nao")) ||
                    (rotina.getQ43() != null && rotina.getQ43().equals("nao")) ||
                    (rotina.getQ51() != null && rotina.getQ51().equals("nao")) ||
                    (rotina.getQ59() != null && rotina.getQ59().equals("nao"))) {
                contagem.setTotalLocaisSujos(contagem.getTotalLocaisSujos() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ60() != null && rotina.getQ60().equals("naoMasHaviaAula")) {
                contagem.setQ60educadorAusente(contagem.getQ60educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ60() != null && rotina.getQ60().equals("aindaNaoFoiContratado")) {
                contagem.setQ60educadorNaoContratado(contagem.getQ60educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ61() != null && rotina.getQ61().equals("naoMasHaviaAula")) {
                contagem.setQ61educadorAusente(contagem.getQ61educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ61() != null && rotina.getQ61().equals("aindaNaoFoiContratado")) {
                contagem.setQ61educadorNaoContratado(contagem.getQ61educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ62() != null && rotina.getQ62().equals("naoMasHaviaAula")) {
                contagem.setQ62educadorAusente(contagem.getQ62educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ62() != null && rotina.getQ62().equals("aindaNaoFoiContratado")) {
                contagem.setQ62educadorNaoContratado(contagem.getQ62educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ63() != null && rotina.getQ63().equals("naoMasHaviaAula")) {
                contagem.setQ63educadorAusente(contagem.getQ63educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ63() != null && rotina.getQ63().equals("aindaNaoFoiContratado")) {
                contagem.setQ63educadorNaoContratado(contagem.getQ63educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ64() != null && rotina.getQ64().equals("naoMasHaviaAula")) {
                contagem.setQ64educadorAusente(contagem.getQ64educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ64() != null && rotina.getQ64().equals("aindaNaoFoiContratado")) {
                contagem.setQ64educadorNaoContratado(contagem.getQ64educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ65() != null && rotina.getQ65().equals("naoMasHaviaAula")) {
                contagem.setQ65educadorAusente(contagem.getQ65educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ65() != null && rotina.getQ65().equals("aindaNaoFoiContratado")) {
                contagem.setQ65educadorNaoContratado(contagem.getQ65educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ66() != null && rotina.getQ66().equals("naoMasHaviaAula")) {
                contagem.setQ66educadorAusente(contagem.getQ66educadorAusente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ66() != null && rotina.getQ66().equals("aindaNaoFoiContratado")) {
                contagem.setQ66educadorNaoContratado(contagem.getQ66educadorNaoContratado() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

        }
        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
